Copending application Ser. No. 207,152 discloses a data processing system having a plurality of host processors, a cache store, a plurality of disk drive devices for driving storage disks, and first and second storage control units for controlling transfers of data between the host processors, the cache store and the disks. The host processors issue commands defining an operation to be performed, each command including an address specifying the disk space at which the operation is to be performed. The management of data in the cache store is by segments, each segment including a plurality of data words. When a host processor issues a command (i.e. write), the storage control unit, after checking the disk device and finding it busy, then checks the cache store to determine if a copy of the data from the specified disk space is resident in the cache store. If it is, then the storage control unit receiving the command controls the transfer of data from the host processor to the cache store. If a copy of the data from the specified disk space is not resident in the cache store then it is brought into a storage control unit, overlayed with the data from the host processor, and the resulting segment(s) of data written into the cache store.
Segments of data which have been modified or "written-to" while resident in the cache store are subsequently transferred to the disks for permanent storage. As explained in application Ser. No. 354,556, this is accomplished under the control of a storage control unit which forms "trickle" commands when it has no higher priority task to perform. There is a command queue for each disk device and a storage control unit places the trickle commands it generates in the queues. A trickle command is executed by a storage control unit when it becomes the highest priority command in its queue. Since a long interval of time, relatively speaking, may elapse between the time that a segment is written-to and the time the written-to segment is transferred to a disk, error recovery may prove difficult if, for example, a bad spot on a disk prevents the written-to segment from being transferred to the disk. Rather than terminate normal processing, the present invention provides a novel method and means for retaining the written-to segment in the cache store until such time as a host processor is ready to perform an error recovery procedure, this usually being at the time the host processor is ready to close the file. Meanwhile, the storage control units are prevented from again attempting to transfer the written-to segment to a disk.